|
The cyclic redundancy check (CRC) is based on division in the ring of polynomials over the finite field GF(2) (the integers modulo 2), that is, the set of polynomials where each coefficient is either zero or one, and arithmetic operations wrap around. Any string of bits can be interpreted as the coefficients of a message polynomial of this sort, and to find the CRC, we multiply the message polynomial by and then find the remainder when dividing by the degree- generator polynomial. The coefficients of the remainder polynomial are the bits of the CRC. ==Math== In general, computation of CRC corresponds to Euclidean division of polynomials over GF(2): : Here is the original message polynomial and is the degree- generator polynomial. The bits of are the original message with zeroes added at the end. The CRC 'checksum' is formed by the coefficients of the remainder polynomial whose degree is strictly less than . The quotient polynomial is of no interest. Using modulo operation, it can be stated that : In communication, the sender attaches the bits of R after the original message bits of M, which could be shown to be equivalent to sending out (the ''codeword''.) The receiver, knowing and therefore , separates M from R and repeats the calculation, verifying that the received and computed R are equal. If they are, then the receiver assumes the received message bits are correct. In practice CRC calculations most closely resemble long division in binary, except that the subtractions involved do not borrow from more significant digits, and thus become exclusive or operations. A CRC is a checksum in a strict mathematical sense, as it can be expressed as the weighted modulo-2 sum of per-bit syndromes, but that word is generally reserved more specifically for sums computed using larger moduli, such as 10, 256, or 65535. CRCs can also be used as part of error-correcting codes, which allow not only the detection of transmission errors, but the reconstruction of the correct message. These codes are based on closely related mathematical principles. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「mathematics of cyclic redundancy checks」の詳細全文を読む スポンサード リンク
|